Authentication হলো এমন একটি প্রক্রিয়া, যা নিশ্চিত করে যে একটি অ্যাপ্লিকেশনে প্রবেশকারী ব্যবহারকারী বৈধ এবং অনুমোদিত কিনা। Authentication সঠিকভাবে কাজ করার মাধ্যমে অ্যাপ্লিকেশনটি নিশ্চিত হয় যে ব্যবহারকারী কে। এটি একটি নিরাপত্তা ব্যবস্থার অন্যতম গুরুত্বপূর্ণ ধাপ।
ASP.NET Core-এ Authentication বিভিন্ন পদ্ধতি ব্যবহার করে ইমপ্লিমেন্ট করা যায়, যেমন Cookie-based Authentication, JWT (JSON Web Token) এবং OAuth।
Authentication সাধারণত তিনটি ধাপে কাজ করে:
Authentication সফল হলে সাধারণত একটি Token বা Session তৈরি হয়, যা ব্যবহারকারীকে সিস্টেমে অনুমোদিত রাখতে ব্যবহৃত হয়।
Cookie-based Authentication হলো ক্লাসিক্যাল Authentication পদ্ধতি, যেখানে ব্যবহারকারীর লগইন সফল হলে সার্ভারে একটি সেশন তৈরি হয় এবং ক্লায়েন্টের ব্রাউজারে একটি Cookie পাঠানো হয়। এই Cookie প্রতিটি অনুরোধে সার্ভারে ফেরত পাঠানো হয়, যা ব্যবহারকারীকে যাচাই করতে সাহায্য করে।
services.AddAuthentication("CookieAuth")
.AddCookie("CookieAuth", options =>
{
options.LoginPath = "/Account/Login";
options.Cookie.Name = "AuthCookie";
});
JWT (JSON Web Token) একটি টোকেন-ভিত্তিক Authentication পদ্ধতি, যেখানে সার্ভার একটি সাইন করা টোকেন জেনারেট করে এবং ক্লায়েন্টে পাঠায়। এই টোকেনটি প্রতিটি অনুরোধের সাথে সার্ভারে ফেরত পাঠানো হয় এবং যাচাই করা হয়।
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = "yourIssuer",
ValidAudience = "yourAudience",
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("yourSecretKey"))
};
});
OAuth (Open Authorization) হলো একটি ওপেন স্ট্যান্ডার্ড প্রোটোকল, যা তৃতীয় পক্ষের অ্যাপ্লিকেশনকে ব্যবহারকারীর ডেটা অ্যাক্সেস করার অনুমতি দেয়, কিন্তু তাদের পাসওয়ার্ড শেয়ার করতে হয় না। এটি টোকেন ভিত্তিক Authentication পদ্ধতি।
ASP.NET Core-এ OAuth ইমপ্লিমেন্ট করার জন্য Microsoft.AspNetCore.Authentication.OAuth প্যাকেজ ব্যবহার করা হয়।
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = GoogleDefaults.AuthenticationScheme;
})
.AddGoogle(options =>
{
options.ClientId = "yourClientId";
options.ClientSecret = "yourClientSecret";
});
পদ্ধতি | বৈশিষ্ট্য | ব্যবহারের ক্ষেত্র |
---|---|---|
Cookie-based | সার্ভারে সেশন সংরক্ষণ এবং ক্লায়েন্টে Cookie ব্যবহার করে। | ছোট ওয়েব অ্যাপ্লিকেশন। |
JWT | Stateless, ক্লায়েন্টে টোকেন সংরক্ষণ এবং প্রতিটি অনুরোধে পাঠানো হয়। | RESTful API এবং মাইক্রোসার্ভিস। |
OAuth | তৃতীয় পক্ষের পরিষেবা থেকে Access Token ব্যবহার করে। | বহিরাগত পরিষেবার মাধ্যমে ডেটা অ্যাক্সেস। |
Authentication অ্যাপ্লিকেশনের নিরাপত্তার মূল ভিত্তি এবং এটি ব্যবহারকারীর অভিজ্ঞতা উন্নত করার পাশাপাশি ডেটার সুরক্ষাও নিশ্চিত করে।
common.read_more